/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package beans;

import entities.Usuario;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import services.ISecurityServiceRemote;

/**
 *
 * @author Juanjo
 */

public class SecurityBean
{
    // -----------------------------------------------
    // Constantes
    // -----------------------------------------------

     /**
      * Constante que modela el valor de error en la operación de ingreso al sistema.
      */
     private final static String ERROR = "ERROR";

    // -----------------------------------------------
    // Atributos
    // -----------------------------------------------

    /**
     * Login del usuario que esta utilizando el sistema.
     */
    private String username;

    /**
     * Contraseña del usuario que se encuentra utilizando el sistema.
     */
    private String pwd;

    /**
     * Relación con la interfaz que provee los servicios necesarios de seguridad para el sistema.
     */
    @EJB
    private ISecurityServiceRemote securityService;

    // -----------------------------------------------
    // Constructor
    // -----------------------------------------------

    /**
     * Constructor de la clase. Inicializa los atributos.
     */
    public SecurityBean()
    {
        
    }

    // -----------------------------------------------
    // Métodos
    // -----------------------------------------------
    
    /**
     * Hace la validacion de ingreso del usuario al sistema.
     * @return tipoUsuario. El tipo de usuario que está utilizando el sistema.
     */
    public String login()
    {
        try
        {
            System.out.println(username);
            Usuario user = securityService.login(username, pwd);

            //Por si vamos a tener otro tipo de usuario
            return "admin";

        } 
        catch ( Exception ex)
        {
            FacesContext context = FacesContext.getCurrentInstance();
			String msg = ex.getMessage();
			FacesMessage fm = new FacesMessage(msg);
			fm.setSeverity(FacesMessage.SEVERITY_ERROR);
			context.addMessage(null, fm);
                Logger.getLogger(SecurityBean.class.getName()).log(Level.SEVERE, null, ex);
            return ERROR;
        }
    }

    /**
     * Retorna la contraseña del usuario que se encuentra actualmente en el sistema.
     * @return pwd. Contraseña del usuario que se encuentra actualment en el sistema.
     */
    public String getPwd() {
        return pwd;
    }

    /**
     * Permite asignar la contraseña del usuario que se encuentra actualmente en el sistema.
     * @param pwd. Nueva contraseña.
     */
    public void setPwd(String pwd) {
        this.pwd = pwd;
    }

    /**
     * Retorna el login del usuario que se encuentra actualmente en el sistema.
     * @return username. Login del usuario que se encuentra actualmente en el sistema.
     */
    public String getUsername() {
        return username;
    }

    /**
     * Permite asignar el login del usuario que se encuentra actualmente en el sistema.
     * @param username. Nuevo login.
     */
    public void setUsername(String username) {
        this.username = username;
    }





}
